home *** CD-ROM | disk | FTP | other *** search
/ BMUG Revelations / BMUG Revelations.toast / Programming / Programming Languages / Harvest C / MPW Int & Lib / Interfaces / SoundInput.h < prev    next >
Text File  |  1991-04-17  |  6KB  |  169 lines

  1. /*
  2.     File:        SoundInput.h
  3.  
  4.     Contains:    Definitions for Sound Input Manager
  5.  
  6.     Copyright:    © 1990 by Apple Computer, Inc., all rights reserved.
  7.  
  8. */
  9.  
  10.  
  11.  
  12. #ifndef __SOUNDINPUT__
  13. #define __SOUNDINPUT__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. #endif
  18.  
  19. #ifndef __DIALOGS__
  20. #include <Dialogs.h>
  21. #endif
  22.  
  23. #ifndef __FILES__
  24. #include <Files.h>
  25. #endif
  26.  
  27.  
  28.  
  29. #define siDeviceIsConnected         1                /* input device is connected and ready for input */
  30. #define siDeviceNotConnected     0                /* input device is not connected */
  31. #define siDontKnowIfConnected    -1                /* can't tell if input device is connected */
  32.  
  33. #define siReadPermission         0                /* permission passed to SPBOpenDevice */
  34. #define siWritePermission         1                /* permission passed to SPBOpenDevice */
  35.  
  36. /* Info Selectors for Sound Input Drivers */
  37.  
  38. #define siDeviceConnected        'dcon'            /* input device connection status */
  39. #define siAGCOnOff                'agc '            /* automatic gain control state */
  40. #define siPlayThruOnOff            'plth'            /* playthrough state */
  41. #define siTwosComplementOnOff    'twos'            /* two's complement state */
  42. #define siLevelMeterOnOff        'lmet'            /* level meter state */
  43. #define siRecordingQuality        'qual'            /* recording quality */
  44. #define siVoxRecordInfo            'voxr'            /* VOX record parameters */
  45. #define siVoxStopInfo            'voxs'            /* VOX stop parameters */
  46. #define siNumberChannels        'chan'            /* current number of channels */
  47. #define siSampleSize            'ssiz'            /* current sample size */
  48. #define siSampleRate            'srat'            /* current sample rate */
  49. #define siCompressionType        'comp'            /* current compression type */
  50. #define siCompressionFactor        'cmfa'            /* current compression factor */
  51. #define siCompressionHeader        'cmhd'            /* return compression header */
  52. #define siDeviceName            'name'            /* input device name */
  53. #define siDeviceIcon            'icon'            /* input device icon */
  54. #define siDeviceBufferInfo        'dbin'            /* size of interrupt buffer */
  55. #define siSampleSizeAvailable    'ssav'            /* sample sizes available */
  56. #define siSampleRateAvailable    'srav'            /* sample rates available */
  57. #define siCompressionAvailable    'cmav'            /* compression types available */
  58. #define siChannelAvailable        'chav'            /* number of channels available */
  59. #define siAsync                    'asyn'            /* asynchronous capability */
  60. #define siOptionsDialog            'optd'            /* display options dialog */
  61. #define siContinuous             'cont'            /* continous recording */
  62. #define siActiveChannels         'chac'            /* active channels */
  63. #define siActiveLevels            'lmac'            /* active meter levels */
  64. #define siInitializeDriver        'init'            /* reserved for internal use only */
  65. #define siCloseDriver            'clos'            /* reserved for internal use only */
  66. #define siPauseRecording        'paus'            /* reserved for internal use only */
  67. #define siUserInterruptProc        'user'            /* reserved for internal use only */
  68.  
  69. /* Qualities */
  70.  
  71. #define siBestQuality            'best'
  72. #define siBetterQuality            'betr'
  73. #define siGoodQuality            'good'
  74.  
  75. /* Sound Input Parameter Block */
  76.  
  77. typedef struct {
  78.     long            inRefNum;                    /* reference number of sound input device */
  79.     unsigned long    count;                        /* number of bytes to record */
  80.     unsigned long    milliseconds;                /* number of milliseconds to record */
  81.     unsigned long    bufferLength;                /* length of buffer in bytes */
  82.     Ptr                 bufferPtr;                    /* buffer to store sound data in */
  83.     ProcPtr         completionRoutine;            /* completion routine */
  84.     ProcPtr         interruptRoutine;            /* interrupt routine */
  85.     long            userLong;                    /* user-defined field */
  86.     OSErr            error;                        /* error */
  87.     long            unused1;                    /* reserved - must be zero */
  88. } SPB, *SPBPtr;
  89.  
  90.  
  91. #ifdef __cplusplus
  92. extern "C" {
  93. #endif
  94. pascal NumVersion SPBVersion(void)
  95.     = {0x203C,0x0000,0x0014,0xA800};
  96.  
  97. pascal OSErr SndRecord(ModalFilterProcPtr filterProc, Point corner, OSType quality, Handle *sndHandle)
  98.     = {0x203C,0x0804,0x0014,0xA800};
  99.  
  100. pascal OSErr SndRecordToFile(ModalFilterProcPtr filterProc, Point corner, OSType quality, short fRefNum)
  101.     = {0x203C,0x0708,0x0014,0xA800};
  102.  
  103. pascal OSErr SPBSignInDevice(short deviceRefNum, Str255 deviceName)
  104.     = {0x203C,0x030C,0x0014,0xA800};
  105.  
  106. pascal OSErr SPBSignOutDevice(short deviceRefNum)
  107.     = {0x203C,0x0110,0x0014,0xA800};
  108.  
  109. pascal OSErr SPBGetIndexedDevice(short count, Str255 deviceName, Handle *deviceIconHandle)
  110.     = {0x203C,0x0514,0x0014,0xA800};
  111.  
  112. pascal OSErr SPBOpenDevice(ConstStr255Param deviceName, short permission, long *inRefNum)
  113.     = {0x203C,0x0518,0x0014,0xA800};
  114.  
  115. pascal OSErr SPBCloseDevice(long inRefNum)
  116.     = {0x203C,0x021C,0x0014,0xA800};
  117.  
  118. pascal OSErr SPBRecord(SPBPtr inParamPtr, Boolean asynchFlag)
  119.     = {0x203C,0x0320,0x0014,0xA800};
  120.  
  121. pascal OSErr SPBRecordToFile(short fileRefNum, SPBPtr inParamPtr, Boolean asynchFlag)
  122.     = {0x203C,0x0424,0x0014,0xA800};
  123.  
  124. pascal OSErr SPBPauseRecording(long inRefNum)
  125.     = {0x203C,0x0228,0x0014,0xA800};
  126.  
  127. pascal OSErr SPBResumeRecording(long    inRefNum)
  128.     = {0x203C,0x022C,0x0014,0xA800};
  129.  
  130. pascal OSErr SPBStopRecording(long inRefNum)
  131.     = {0x203C,0x0230,0x0014,0xA800};
  132.  
  133. pascal OSErr SPBGetRecordingStatus( long            inRefNum,
  134.                                     short            *recordingStatus,
  135.                                     short            *meterLevel,
  136.                                     unsigned long    *totalSamplesToRecord,
  137.                                     unsigned long    *numberOfSamplesRecorded,
  138.                                     unsigned long    *totalMsecsToRecord,
  139.                                     unsigned long    *numberOfMsecsRecorded )
  140.     = {0x203C,0x0E34,0x0014,0xA800};
  141.  
  142. pascal OSErr SPBGetDeviceInfo(long inRefNum, OSType infoType, char *infoData)
  143.     = {0x203C,0x0638,0x0014,0xA800};
  144.  
  145. pascal OSErr SPBSetDeviceInfo(long inRefNum, OSType infoType, char *infoData)
  146.     = {0x203C,0x063C,0x0014,0xA800};
  147.  
  148. pascal OSErr SPBMillisecondsToBytes(long inRefNum, long *milliseconds)
  149.     = {0x203C,0x0440,0x0014,0xA800};
  150.  
  151. pascal OSErr SPBBytesToMilliseconds(long inRefNum, long *byteCount)
  152.     = {0x203C,0x0444,0x0014,0xA800};
  153.  
  154. pascal OSErr SetupSndHeader(Handle sndH, short numChannels, Fixed sampleRate,
  155.                 short sampleSize, OSType compressionType,
  156.                 short baseNote, unsigned long numBytes, short *headerLen)
  157.     = {0x203C,0x0D48,0x0014,0xA800};
  158.  
  159. pascal OSErr SetupAIFFHeader(short fRefNum, short numChannels, Fixed sampleRate,
  160.                 short sampleSize, OSType compressionType,
  161.                 unsigned long numBytes, unsigned long numFrames)
  162.     = {0x203C,0x0B4C,0x0014,0xA800};
  163.  
  164. #ifdef __cplusplus
  165. }
  166. #endif
  167.  
  168. #endif
  169.